﻿using System;
using System.Linq;
using System.Windows.Forms;

namespace Sigos
{
    public partial class frmPesquisaCliente : Sigos.BaseBuscas
    {
        public frmPesquisaCliente()
        {
            InitializeComponent();
        }

        SigosEntities Contexto = new SigosEntities();
        public string CodigoSelecionado = "-1";
        private System.Collections.Generic.List<Clientes> LClientes;
        private IOrderedEnumerable<Clientes> LClientesO;
        public void Buscar(string Termo)
        {
            pProgress.Value = 5;
            lstResultados.Items.Clear();
            LClientes = (from c in Contexto.Clientes
                         where c.NomeFantasia.Contains(Termo) || c.RazaoSocial.Contains(Termo) || c.CPF_CNPJ.Contains(Termo) || c.Telefone.Contains(Termo) || c.Celular.Contains(Termo)
                         select c).ToList();
            LClientesO = LClientes.OrderBy(o => o.RazaoSocial);
            pProgress.Value = 55;
            foreach (Clientes cli in LClientesO)
            {
                ListViewItem item = new ListViewItem();
                item.Text = cli.Codigo.ToString();
                item.SubItems.Add(cli.NomeFantasia);
                item.SubItems.Add(cli.RazaoSocial);
                item.SubItems.Add(cli.Telefone);
                //item.SubItems.Add(cli.)
                lstResultados.Items.Add(item);
            }
            pProgress.Value = 100;
            lblResultados.Text = "Foram encontrada(s) " + LClientes.Count + " Ocorrência(s) com o parametro informado";
        }

        private void txtParametro_TextChanged(object sender, EventArgs e)
        {
            if (txtParametro.TextLength > 1)
            {
                Buscar(txtParametro.Text);
            }
        }

        private void lstResultados_DoubleClick(object sender, EventArgs e)
        {
            try
            {
                if (lstResultados.SelectedItems[0].Text != "0")
                {
                    CodigoSelecionado = lstResultados.SelectedItems[0].Text;
                    Utilidades.NumeroPedido = lstResultados.SelectedItems[0].Text;
                    DialogResult = DialogResult.OK;
                    Close();
                }
            }
            catch
            {

            }

        }

        private void frmPesquisaCliente_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.Enter:
                    lstResultados_DoubleClick(sender, e);
                    break;
            }
        }

        private void btnListarTodos_Click(object sender, EventArgs e)
        {
            txtParametro.Text = string.Empty;
            Buscar("");

        }
    }
}
